Skip to content

feat(users): add customizable appearance, themes, and branding - #993

Open
PreciselyWrong wants to merge 9 commits into
dannyvfilms:latestfrom
PreciselyWrong:feat/user-appearance
Open

feat(users): add customizable appearance, themes, and branding#993
PreciselyWrong wants to merge 9 commits into
dannyvfilms:latestfrom
PreciselyWrong:feat/user-appearance

Conversation

@PreciselyWrong

Copy link
Copy Markdown

Summary

  • add persisted user appearance controls for theme, contrast, motion, density, and branding
  • apply appearance tokens consistently across authenticated and public layouts
  • add one consolidated user appearance migration and architecture documentation
  • keep portaled modals interactive and long episode titles contained

Validation

  • 54 targeted Django tests pass
  • Ruff passes for every Python file changed by this PR
  • Tailwind output regenerated twice and stable
  • JavaScript syntax and git diff checks pass
  • deployed and validated on the maintainer's custom server

Sni3rs added 9 commits August 25, 2026 19:37
- add persisted appearance preferences and a consolidated 0128 migration
- expose theme, contrast, motion, density, and branding controls
- apply appearance tokens across public and authenticated layouts
- keep portaled modals interactive and long episode titles contained
- cover appearance views, migrations, theme states, and UI contracts
- resolve modal state from the Alpine data stack preserved by the viewport portal
- update modal state directly after its original wrapper is detached
- add a regression contract for portaled close controls
- recognize Alpine state exposed through inherited proxy data
- keep portaled close controls connected to their original wrapper
- strengthen the regression contract for proxy-backed state
- preserve the original Alpine data stack under a stable modal-owned reference
- prefer the preserved reference when closing a detached overlay
- cover the portal-to-close contract with regression assertions
- detach the active fullscreen overlay when its close action runs
- keep Alpine state synchronization as a best-effort update
- guarantee HTMX can recreate a fresh modal on the next open
- retain the original Alpine state host before moving the overlay
- reset the owner state through that stable host reference
- preserve deterministic removal while allowing the modal to reopen
- remember each overlay's original wrapper before portaling
- return closed overlays to their HTMX target instead of deleting it
- preserve reopening while keeping viewport-safe modal placement
- hide the overlay immediately after returning it to its HTMX wrapper
- let the next Alpine open transition reveal the same reusable target
- cover the explicit close-state fallback
- merge the latest upstream changes without rewriting history
- preserve custom themes and detail-page layouts
- reconcile provider and user migration branches
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant